import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { ViteEjsPlugin } from 'vite-plugin-ejs'
import { resolve } from "path";
//import WindiCSS from 'vite-plugin-windicss'
// import AutoImport from 'unplugin-auto-import/vite'
// import Components from 'unplugin-vue-components/vite'
// import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
//import ElementPlus from 'unplugin-element-plus/vite'

import { fileURLToPath } from 'url';
import { createHtmlPlugin } from 'vite-plugin-html';

const getTarget = (mode, target) => {
  return loadEnv(mode, process.cwd())[target];
 };
// https://vitejs.dev/config/
export default defineConfig(({command,mode })=>{
 const env=loadEnv(mode ,process.cwd()) 
//  console.log(env.VITE_APP_TITLE)//获取环境变量 
//  console.log(env.VITE_APP_API_BASEURL)//获取环境变量 
 return{  
   //envPrefix:  ['VUE','VITE'],   // 环境变量前缀,默认只会暴露VITE开头变量，定义后可暴露VUE开头变量
   define: {
    'process.env': {
      'VUE_APP_TITLE' : env.VITE_APP_TITLE,
      'VUE_APP_API_BASEURL' : env.VITE_APP_API_BASEURL,
      'VUE_APP_PORT' : env.VITE_APP_PORT,
      'VUE_APP_PROXY' :env.VITE_APP_PROXY,
    }  
  }, 
  plugins: [
    vue(),
    ViteEjsPlugin(),
    createHtmlPlugin({
      minify: true,
      //entry: '/src/main.js',
      inject: {
        // Inject data into ejs template
        data: {
          VUE_APP_TITLE: env.VITE_APP_TITLE,
        },
        // Embed the generated app.config.js file   
      },
    }),
    //WindiCSS(),
    // AutoImport({
    //   resolvers: [
    //     // 自动导入 Element Plus 相关函数，如：ElMessage, ElMessageBox... (带样式)
    //     ElementPlusResolver(),
    //     // 自动导入图标组件
    //     IconsResolver({}),
    //   ],
    //   vueTemplate: true, // 是否在 vue 模板中自动导入
    // }),
    // Components({
    //   resolvers:[
    //     // 自动导入 Element Plus 组件
    //     ElementPlusResolver()
    //   ]
    // }),
    // Icons({
    //   // 自动安装图标库
    //   autoInstall: true,
    // }),   
   ],     
  resolve: {
    // 配置路径别名
    alias: {
        '@': resolve(__dirname, 'src'), // 设置 `@` 指向 `src` 目录     
        'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js'
      }, 
      extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
    },
    base: './',// 设置打包路径
    server:
    { 
      //allowedHosts: 'all',		
      open:true,//自动打开浏览器
      port:env.VITE_APP_PORT, //挂载端口
      //设置代理，根据我们项目实际情况配置
      proxy: {
        '/api': {
          target: env.VITE_APP_API_BASEURL,
          ws: true,
          changeOrigin: true,
          secure: false,    
          rewrite: (path) => path.replace(/^\/api/, '/')
        }
      }
    },
    build: {

    },
  }
})